home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / man / cmds.fmt / cvs.man < prev    next >
Encoding:
Text File  |  1991-12-12  |  55.1 KB  |  1,387 lines

  1.  
  2.  
  3.  
  4. CVS                  UNKNOWN MANUAL SECTION                   CVS
  5.  
  6.  
  7.  
  8. NNAAMMEE
  9.      cvs - Concurrent Versions System
  10.  
  11. SSYYNNOOPPSSIISS
  12.      ccvvss [ _c_v_s__o_p_t_i_o_n_s ] _c_v_s__c_o_m_m_a_n_d [ _c_o_m_m_a_n_d__o_p_t_i_o_n_s ] [
  13.      _c_o_m_m_a_n_d__a_r_g_s ]
  14.  
  15. DDEESSCCRRIIPPTTIIOONN
  16.      ccvvss is a front end to the rrccss(l) revision control system
  17.      which extends the notion of revision control from a collec-
  18.      tion of files in a single directory to a hierarchical col-
  19.      lection of directories consisting of revision controlled
  20.      files.  These directories and files can be combined together
  21.      to form a software release.  ccvvss provides the functions
  22.      necessary to manage these software releases and to control
  23.      the concurrent editing of source files among multiple
  24.      software developers.
  25.  
  26.      The following list summarizes some of the strong points of
  27.      ccvvss:
  28.  
  29.      o+    Only a single copy of the master sources exist.  This
  30.           copy is called the source ``repository'' and, through
  31.           administrative actions, contains all the information to
  32.           extract previous software releases at any time based on
  33.           either a symbolic revision tag, or a date in the past.
  34.  
  35.      o+    Individual software developers check out private copies
  36.           of the sources into their personal work space.  These
  37.           private sources can be edited at any time and checked
  38.           back into the source repository as a permanent change.
  39.           ccvvss takes special care to ensure that a file is up-to-
  40.           date with the current revision in the source repository
  41.           before allowing it to be added as a permanent change.
  42.  
  43.      o+    There is a facility for software developers to bring
  44.           their private copies of the sources up-to-date with the
  45.           currently checked in revisions, while at the same time
  46.           preserving any modifications that have been made to
  47.           their private sources.  This allows multiple developers
  48.           to be concurrently working on the same source files
  49.           without regard for what the other guy is doing.
  50.  
  51.           Note that this is the biggest change from the way most
  52.           other revision control systems, like RCS or SCCS work,
  53.           which allow only one developer to ever be changing a
  54.           file, since the file must be checked out as ``locked''
  55.           for the exclusive use of that person.  ccvvss instead
  56.           never applies an RCS lock to a checked out file until
  57.           the moment before it is to be checked back in as a per-
  58.           manent change.  Concurrency checks are performed on the
  59.           soon-to-be checked in file and the file must be up-to-
  60.  
  61.  
  62.  
  63. Sprite v1.0               20 July 1989                          1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CVS                  UNKNOWN MANUAL SECTION                   CVS
  71.  
  72.  
  73.  
  74.           date before it can be made permanent.  In this way, ccvvss
  75.           allows individuals the freedom to change any file at
  76.           will, and provides the tools necessary to point out, if
  77.           not resolve, any conflicts that may be generated by
  78.           allowing this extra, and necessary, freedom.
  79.  
  80.      o+    ccvvss has direct support for tracking source releases
  81.           from third-party vendors.  The cchheecckkiinn(l) program is
  82.           used to initially setup the source repository.  The
  83.           branch support of RCS is used to build the vendor
  84.           release as a branch off the main (local) RCS trunk.
  85.           Once this is done, developers can check out files and
  86.           make local changes to the vendor's source distribution.
  87.           The act of checking in a local change to a vendor's
  88.           source distribution moves the RCS branch from tracking
  89.           the third-party vendor's release to the main (local)
  90.           RCS trunk so that the local version of the file is used
  91.           forever more.
  92.  
  93.           When a new version of the vendor's source distribution
  94.           (or even a minor version consisting of a small subset
  95.           of files) arrives, the cchheecckkiinn program is used again to
  96.           add the new vendor release to the already existing
  97.           source repository.  For files that have not been
  98.           changed locally, the new file from the vendor becomes
  99.           the current revision.  For files that have been modi-
  100.           fied locally, cchheecckkiinn warns that the file must be
  101.           merged manually with the new vendor release.  The jjooiinn
  102.           command of ccvvss is a useful tool that aids this manual
  103.           merge process (see below).
  104.  
  105.      o+    A vendor release or a local release can be given a sym-
  106.           bolic tag name that is stored directly in the RCS
  107.           files.  This tag can be used at any time in the future
  108.           to get an exact copy of any previous release.  With
  109.           equal ease, one can also extract an exact copy of the
  110.           source files as of any arbitrary date in the past as
  111.           well.
  112.  
  113.      o+    All changes that are made to the source repository are
  114.           carefully logged in a file, notesfile, or news data-
  115.           base, which can be used to produce release notices.
  116.           ccvvss can be configured to send log updates through one
  117.           or more filter programs, based on a regular expression
  118.           match on the directory that is being changed.  This
  119.           allows multiple related or unrelated projects to exist
  120.           within a single ccvvss source repository tree, with each
  121.           different project sending their checkin reports to a
  122.           unique log device for the project.
  123.  
  124.      o+    There is support for a simple, yet powerful, ``module''
  125.           database.  This database can be used to apply names to
  126.  
  127.  
  128.  
  129. Sprite v1.0               20 July 1989                          2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CVS                  UNKNOWN MANUAL SECTION                   CVS
  137.  
  138.  
  139.  
  140.           collections of directories and files as a matter of
  141.           convenience when checking out smaller pieces of a
  142.           larger software distribution.  This allows one to
  143.           checkout the ``diff'' program, for example, without
  144.           ever requiring the knowledge that the sources to
  145.           ``diff'' actually reside in the ``bin/diff'' directory.
  146.  
  147.           The module database also has limited support for an
  148.           aliasing capability.  This is useful for programs that
  149.           share sources from completely disjoint directories.
  150.           The aliasing feature can also be used to limit a named
  151.           release to a certain collection of directories and
  152.           files, to only work with pieces of the source found in
  153.           the entire source repository.
  154.  
  155.      o+    There is direct support for determining which files
  156.           have changed since a previous release, or from a par-
  157.           ticular date.  As well, ccvvss can create a ppaattcchh(l) for-
  158.           mat output file which can be used to bring a previously
  159.           released software distribution current with the newest
  160.           release.  One can create a patch file between two
  161.           tagged revisions, between a revision and some date in
  162.           the past, between two dates, or between a date or revi-
  163.           sion and the current ``head'' revision.
  164.  
  165.      The remainder of this manual page will document how all
  166.      these actions can be done using the ccvvss program.
  167.  
  168. OOPPTTIIOONNSS
  169.      ccvvss accepts a number of options that override the current
  170.      setting of the recognized environment variables.
  171.  
  172.      --rr   Checks out files read-only.  Same effect as if the
  173.           CVSREAD environment variable is set.
  174.  
  175.      --ww   Checks out files read-write (default).  Overrides the
  176.           setting of the CVSREAD environment variable.
  177.  
  178.      --vv   Outputs version and copyright information for ccvvss, then
  179.           exits.
  180.  
  181.      --dd _C_V_S__r_o_o_t__d_i_r_e_c_t_o_r_y
  182.           Use _C_V_S__r_o_o_t__d_i_r_e_c_t_o_r_y as the root directory pathname
  183.           of the master RCS source repository.  Overrides the
  184.           setting of the CVSROOT environment variable.
  185.  
  186.      --bb _b_i_n_d_i_r
  187.           Use _b_i_n_d_i_r as the directory to find RCS programs
  188.           within.  Overrides the setting of the RCSBIN environ-
  189.           ment variable.
  190.  
  191.      --ee _e_d_i_t_o_r
  192.  
  193.  
  194.  
  195. Sprite v1.0               20 July 1989                          3
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. CVS                  UNKNOWN MANUAL SECTION                   CVS
  203.  
  204.  
  205.  
  206.           Use _e_d_i_t_o_r for editing revision log information.  Over-
  207.           rides the setting of the EDITOR environment variable.
  208.  
  209.      --HH   Displays usage information about the specified
  210.           _c_v_s__c_o_m_m_a_n_d without actually executing said command.
  211.  
  212. UUSSAAGGEE
  213.      A _c_v_s__c_o_m_m_a_n_d must be specified to ccvvss which drives the
  214.      specific release control function that is performed.  Each
  215.      ccvvss command accepts options and arguments unique to the com-
  216.      mand.  The usage statements for each command can be
  217.      displayed by specifying the --HH option to the command.
  218.  
  219.      The available commands are listed below along with a
  220.      description of their function.  Command options unique to
  221.      the command are described in this section with the command
  222.      description.  Common command options are described fully in
  223.      the following section.
  224.  
  225.      cchheecckkoouutt [--QQqqllffnnpp] [--cc] [--rr _t_a_g|--DD _d_a_t_e__s_p_e_c] _m_o_d_u_l_e_s...
  226.           Checks out the source files defined by _m_o_d_u_l_e_s.  This
  227.           command is used to get a private copy of the current
  228.           sources that can be edited and processed by most of the
  229.           other ccvvss commands.  cchheecckkoouutt must be done before many
  230.           of the other ccvvss commands are used, since most of them
  231.           operate on checked out sources.
  232.  
  233.           Depending on the _m_o_d_u_l_e_s specified, cchheecckkoouutt may recur-
  234.           sively create directories and populate them with the
  235.           appropriate source files.  These source files can then
  236.           be edited at any time (regardless of whether other
  237.           software developers are editing their private copies of
  238.           the sources), updated to include new changes checked
  239.           into the source repository, or committed as a permanent
  240.           change to the RCS repository.
  241.  
  242.           Note that cchheecckkoouutt is used to create directories.  The
  243.           top-level directory created is always added to the
  244.           working directory where cchheecckkoouutt is invoked, and usu-
  245.           ally has the same name as the specified _m_o_d_u_l_e.  In the
  246.           case of a _m_o_d_u_l_e alias, the created sub-directory may
  247.           have a different name, but you can be sure that it will
  248.           be a sub-directory, and that cchheecckkoouutt will show the
  249.           relative path leading to each file as it is extracted
  250.           into your private work area, unless the --QQ option is
  251.           specified.
  252.  
  253.           Running cchheecckkoouutt on a directory that was already built
  254.           by cchheecckkoouutt is also OK.  This has the same effect as
  255.           specifying the --dd option to the uuppddaattee command
  256.           described below.
  257.  
  258.  
  259.  
  260.  
  261. Sprite v1.0               20 July 1989                          4
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. CVS                  UNKNOWN MANUAL SECTION                   CVS
  269.  
  270.  
  271.  
  272.           The --cc option ``cat''s the module file, sorted, to the
  273.           standard output, and does not cause any files or direc-
  274.           tories to be checked out.
  275.  
  276.           ccoo can be specified instead of cchheecckkoouutt to save some
  277.           typing.  See the MODULES section below for a complete
  278.           description of modules.
  279.  
  280.      uuppddaattee [--QQqqllffpp] [--dd] [--rr _t_a_g|--DD _d_a_t_e__s_p_e_c] _f_i_l_e_s...
  281.           After cchheecckkoouutt is run, directories and files have been
  282.           extracted from the source repository for your personal
  283.           editing.  At any time that is convenient in your
  284.           development process, the uuppddaattee command can be run _f_r_o_m
  285.           _w_i_t_h_i_n _t_h_e _d_i_r_e_c_t_o_r_y _t_h_a_t _c_o_n_t_a_i_n_s _t_h_e _c_h_e_c_k_e_d _o_u_t
  286.           _s_o_u_r_c_e_s to bring those sources current with any revi-
  287.           sions that have been checked into the source repository
  288.           since they were last checked out or uuppddaatteed.
  289.  
  290.           Normally, uuppddaattee brings the current directory up-to-
  291.           date, then descends any sub-directories, bringing them
  292.           up-to-date as well.  This can be overridden by specify-
  293.           ing a list of files that should only be updated, or by
  294.           using the --ll option which causes uuppddaattee to only process
  295.           the current directory, ignoring any sub-directories.
  296.  
  297.           If any special options were initially specified to
  298.           cchheecckkoouutt when the source were initially checked out,
  299.           these exact options should be specified to uuppddaattee as
  300.           well to keep the sources consistent with the way they
  301.           were originally checked out.  For example, checking out
  302.           sources by specifying the ``--rr VV11__00'' option will check
  303.           out the revisions associated with the VV11__00 release tag.
  304.           A subsequent uuppddaattee that does _n_o_t specify this exact --rr
  305.           option as well will revert to updating the sources with
  306.           the current revisions as stored in the source reposi-
  307.           tory, rather than those revisions associated with the
  308.           VV11__00 release.
  309.  
  310.           If the --dd option is specified then uuppddaattee will update
  311.           your source tree with any new directories that have
  312.           been added to the repository.
  313.  
  314.           For a complete description of the algorithm that uuppddaattee
  315.           uses to bring your source up-to-date, refer to the CCOONN--
  316.           FFLLIICCTT RREESSOOLLUUTTIIOONN section below.
  317.  
  318.      ccoommmmiitt [--QQqqffnn] [-a] [--mm '_l_o_g__m_e_s_s_a_g_e'] [--
  319.           rr _r_e_v_i_s_i_o_n] [_f_i_l_e_s...]
  320.           At any point, changes that you have made to your
  321.           private copies of the sources may be ccoommmmiittted to the
  322.           source repository as a permanent change.  ccoommmmiitt does
  323.           not do a recursive ccoommmmiitt, so each individual directory
  324.  
  325.  
  326.  
  327. Sprite v1.0               20 July 1989                          5
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. CVS                  UNKNOWN MANUAL SECTION                   CVS
  335.  
  336.  
  337.  
  338.           must be checked in separately, even if the changes were
  339.           related.
  340.  
  341.           ccoommmmiitt verifies that the selected files are up-to-date
  342.           with the current revisions in the source repository and
  343.           will abort without committing if any of the specified
  344.           files must be made current first with the uuppddaattee com-
  345.           mand.  With the --aa option, all relevant files of the
  346.           current directory are examined.  ccoommmmiitt is careful to
  347.           only check in those files that have really changed.
  348.           Note that ccoommmmiitt does not uuppddaattee the out-of-date files
  349.           for you, but rather leaves that for you to do when the
  350.           time is right.
  351.  
  352.           An RCS identification string ($Id) must exist in the
  353.           modified files that are to be checked in.  If the iden-
  354.           tification string cannot be found in any of the files,
  355.           ccoommmmiitt will prompt you for verification before proceed-
  356.           ing.  This prompt is bypassed if the --ff option has been
  357.           specified.
  358.  
  359.           When all is well, an editor is invoked for the purpose
  360.           of entering a log message that will be written to one
  361.           or more logging programs and placed in the RCS source
  362.           repository file.  The log message may be specified on
  363.           the command line with the --mm option, thus suppressing
  364.           the editor invocation.
  365.  
  366.           ccii can be specified instead of ccoommmmiitt to save some typ-
  367.           ing.
  368.  
  369.      ddiiffff [_r_c_s_d_i_f_f__o_p_t_i_o_n_s] [_f_i_l_e_s...]
  370.           Your checked out files can be diffed against the origi-
  371.           nal revisions they were based upon with the ddiiffff com-
  372.           mand.  See rrccssddiiffff(l) for a list of accepted options.
  373.           If no files are specified, ddiiffff will only ``diff''
  374.           those files in the current directory that are different
  375.           than the checked out revision (i.e. ones that _y_o_u have
  376.           changed), or that are different than a specified revi-
  377.           sion.  If files are specified, only those files are
  378.           diffed.
  379.  
  380.           Two revisions may be specified as well.  In which case
  381.           your private sources are not diffed at all.  Instead,
  382.           the two revisions specified are diffed.
  383.  
  384.      lloogg [_r_l_o_g__o_p_t_i_o_n_s] [_f_i_l_e_s...]
  385.           To display revision log information equivalent to the
  386.           rrlloogg(l) program, the lloogg command is used.  See rrlloogg(l)
  387.           for a list of accepted options.  If no files are speci-
  388.           fied, lloogg will run an rrlloogg (with the arguments asa
  389.           specified) on every file under ccvvss control in the
  390.  
  391.  
  392.  
  393. Sprite v1.0               20 July 1989                          6
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. CVS                  UNKNOWN MANUAL SECTION                   CVS
  401.  
  402.  
  403.  
  404.           current directory.  If files are specified, the log
  405.           information of only those files is displayed.
  406.  
  407.      ssttaattuuss [_f_i_l_e_s...]
  408.           Displays three lines of information for each of its
  409.           argument files, one for the user file (line 1), one for
  410.           the newest RCS file showing the current ``head'' revi-
  411.           sion number (line 3), and one for the RCS file both
  412.           derive from showing the date it was last updated (line
  413.           2).
  414.  
  415.      aadddd [--mm '_m_e_s_s_a_g_e'] _f_i_l_e_s...
  416.           To permanently create a new file or directory in the
  417.           RCS source repository, the aadddd command is used.  The
  418.           files or directories specified to aadddd must already
  419.           exist in the current directory (which must have been
  420.           created with the cchheecckkoouutt command).  For adding a whole
  421.           new directory hierarchy to the source repository that
  422.           was received from a third-party vendor, see the
  423.           cchheecckkiinn(l) program for how to do this.
  424.  
  425.           If the argument refers to an immediate sub-directory,
  426.           the directory is created at the correct place in the
  427.           RCS source repository and the necessary ccvvss administra-
  428.           tion files are created within the argument directory.
  429.           It is not considered an error if the RCS source reposi-
  430.           tory directory already exists.  Thus, to add a direc-
  431.           tory to your private sources that was created after you
  432.           had done your cchheecckkoouutt of the sources, you can do the
  433.           following:
  434.  
  435.                     eexxaammppllee%% mmkkddiirr nneeww__ddiirreeccttoorryy
  436.                     eexxaammppllee%% ccvvss aadddd nneeww__ddiirreeccttoorryy
  437.                     eexxaammppllee%% ccvvss uuppddaattee nneeww__ddiirreeccttoorryy
  438.  
  439.           For each added file, a description of the file's pur-
  440.           pose is read from the terminal in RCS fashion, unless
  441.           the --mm option is specified, in which case the argument
  442.           _m_e_s_s_a_g_e is used instead.  This description will become
  443.           a permanent part of the created RCS file.
  444.  
  445.           The added files are not placed in the RCS source repo-
  446.           sitory until they are ccoommmmiittted as a permanent change.
  447.           Doing an aadddd on a file that has been removed with the
  448.           rreemmoovvee command will resurrect the file, unless it has
  449.           already been ccoommmmiittted.
  450.  
  451.      rreemmoovvee _f_i_l_e_s...
  452.           Marks the specified files as removed on purpose from
  453.           the current directory in the source repository.  The
  454.           specified files must no longer exist in the current
  455.           directory when the rreemmoovvee command is issued.  The files
  456.  
  457.  
  458.  
  459. Sprite v1.0               20 July 1989                          7
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. CVS                  UNKNOWN MANUAL SECTION                   CVS
  467.  
  468.  
  469.  
  470.           are not actually removed until they are ccoommmmiittted, at
  471.           which point their respective RCS files in the source
  472.           depository are _m_o_v_e_d into the _A_t_t_i_c directory within
  473.           the source repository.  To restore a committed removed
  474.           file to the present version requires an administrator
  475.           to physically _m_o_v_e the RCS file out of the _A_t_t_i_c and
  476.           back into its parent directory.
  477.  
  478.      jjooiinn [--QQqqff] [--rr _t_a_g|--DD _d_a_t_e__s_p_e_c] _f_i_l_e_s...
  479.           The intended purpose of the jjooiinn command is to perform
  480.           the logical merge of a new vendor release installed
  481.           with the cchheecckkiinn(l) command with locally modified files
  482.           from a previous vendor release.  The cchheecckkiinn program
  483.           will inform you that a vendor file has been locally
  484.           modified and it is up to _y_o_u to resolve the two
  485.           branches of development (local and vendor) into a uni-
  486.           fied revision that will be ccoommmmiittted as a permanent
  487.           change to the source repository on the main (local)
  488.           trunk.  The jjooiinn command will usually be used with the
  489.           --rr option to specify the vendor tag that is to be
  490.           merged with the local changes.  This merge is handled
  491.           by RCS and the resultant file is placed in the current
  492.           directory (within your private work space) and any con-
  493.           flicts during the merge are displayed.
  494.  
  495.           After correcting any conflicts during the merge, ccoommmmiitt
  496.           the joined file as usual with a modified file, and the
  497.           result (with a bit of work, perhaps) should be a work-
  498.           ing combination of the local changes and the vendor
  499.           changes.
  500.  
  501.      iinnffoo [--ff] [--rr _t_a_g|--DD _d_a_t_e__s_p_e_c] _f_i_l_e_s...
  502.           The iinnffoo command gives a brief summary of the state of
  503.           your checked out files.  Its output is similar to that
  504.           of the uuppddaattee command.  See the CCOONNFFLLIICCTT RREESSOOLLUUTTIIOONN
  505.           section for details.  If no arguments are given iinnffoo
  506.           will print the state of all files in the current direc-
  507.           tory, otherwise it will print the state of the speci-
  508.           fied files.  IInnffoo is not recursive. There is a small
  509.           difference in the meaning of the CC notation between the
  510.           iinnffoo and uuppddaattee commands.  IInnffoo will print a CC in front
  511.           of any file that has been modified both locally and in
  512.           the repository. UUppddaattee will only print a CC if a merge
  513.           of the two versions produces a conflict.
  514.  
  515.      The following commands do their work entirely within the RCS
  516.      source repository and, as such, do not require that a
  517.      cchheecckkoouutt be done first.  These commands are usually of
  518.      interest only to the person responsible for the release pro-
  519.      cedures of a software package.  See the MMOODDUULLEE SSUUPPPPOORRTT sec-
  520.      tion below for a full description of what a _m_o_d_u_l_e is.
  521.  
  522.  
  523.  
  524.  
  525. Sprite v1.0               20 July 1989                          8
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. CVS                  UNKNOWN MANUAL SECTION                   CVS
  533.  
  534.  
  535.  
  536. _m_o_d_u_l_e_s...
  537.      ppaattcchh [--QQqqllff] [--ss|--tt] [--rr _t_a_g|--DD _d_a_t_e__s_p_e_c [--rr _t_a_g|--
  538.           DD _d_a_t_e__s_p_e_c]]
  539.           Builds a Larry Wall format ppaattcchh(l) file between two
  540.           releases that can be fed directly into the ppaattcchh pro-
  541.           gram to bring an old release up-to-date with the new
  542.           release.  The diff output is sent to the standard out-
  543.           put device.  Note that any combination of one or two
  544.           revisions or dates may be specified.  If only one revi-
  545.           sion or date is specified, the ppaattcchh is made between
  546.           that revision or date and the current ``head'' revi-
  547.           sions in the RCS file.
  548.  
  549.           Note that if the software release that is being ppaattcchhed
  550.           is contained in more than one directory, then it may be
  551.           necessary to specify the --pp option to the ppaattcchh(l) com-
  552.           mand when patching the old sources, so that ppaattcchh(l) is
  553.           able to find the files that are located in other direc-
  554.           tories.
  555.  
  556.           If the --ss option is specified, a patch file is not pro-
  557.           duced.  Instead, a description of the changed or added
  558.           files between the two releases is sent to the standard
  559.           output device.  This is useful for finding out, for
  560.           example, which files have changed between two dates or
  561.           revisions.
  562.  
  563.           If the --tt option is specified, a diff of the top two
  564.           revisions is sent to the standard output device.  This
  565.           is most useful for seeing what the last change to a
  566.           file was.
  567.  
  568.      ttaagg [--QQqqllffnn] [--dd] [--rr _t_a_g|--
  569.           DD _d_a_t_e__s_p_e_c] _s_y_m_b_o_l_i_c__t_a_g _m_o_d_u_l_e_s...
  570.           Sources in the repository can have a symbolic tag asso-
  571.           ciated with them.  This allows one to ``snapshot'' the
  572.           current sources when the software freeze date of a pro-
  573.           ject arrives, and as bugs are fixed after the freeze
  574.           date, only those changed sources that are to be part of
  575.           the release need be re-tagged.
  576.  
  577.           The symbolic tags are meant to permanently record which
  578.           revisions of which files were used in creating a
  579.           software distribution.  The functionality provided with
  580.           the cchheecckkoouutt and uuppddaattee commands allow one to extract
  581.           an exact copy of this release at any time in the
  582.           future, regardless of whether files have been aadddded or
  583.           rreemmoovveed since the release was ttaaggged.  So in general,
  584.           these symbolic names of software distributions should
  585.           not be removed, but the --dd option is provided as a
  586.           means to remove completely obsolete symbolic names if
  587.           necessary (as might be the case for an Alpha release,
  588.  
  589.  
  590.  
  591. Sprite v1.0               20 July 1989                          9
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. CVS                  UNKNOWN MANUAL SECTION                   CVS
  599.  
  600.  
  601.  
  602.           say).  It is also possible to only tag files that
  603.           already contain a certain tag.  This method would be
  604.           used to rename a tag - tag only the files with the old
  605.           tag, then delete the old tag leaving the new tag which
  606.           would tag the exact same files as the old tag.
  607.  
  608. CCOOMMMMAANNDD OOPPTTIIOONNSS
  609.      The following options are common to more than one of the ccvvss
  610.      commands, and are explained in detail here once, for brev-
  611.      ity.
  612.  
  613.      --QQ   Causes the command to be _r_e_a_l_l_y quiet.
  614.  
  615.      --qq   Causes the command to be somewhat quiet.
  616.  
  617.      --ll   Causes the command to not be recursive.  Only the
  618.           specified directory will be processed.
  619.  
  620.      --ff   Forces the specified tag to match.  Normally, when a
  621.           tag is specified with the --rr option and the RCS file
  622.           does not contain the tag, the ``head'' revision for the
  623.           RCS file is returned.  When the --ff option is specified,
  624.           any RCS file that does not contain the specified tag is
  625.           ignored.  This is useful for extracting an exact copy
  626.           of a previously tagged release.
  627.  
  628.      --nn   Causes the command _n_o_t to run any cchheecckkoouutt/ccoommmmiitt/ttaagg
  629.           program as specified in the modules database.
  630.  
  631.      --pp   On cchheecckkoouutt or uuppddaattee, prune directories that are empty
  632.           after being updated.  This is useful for extracting an
  633.           exact copy of a previously release, especially when
  634.           combined with the --ff option.
  635.  
  636.      --rr _t_a_g
  637.           Causes the command to use the revision specified by the
  638.           _t_a_g argument instead of the usual ``head'' revision.
  639.           The _t_a_g can be either a symbolic or numeric tag, in RCS
  640.           fashion, except in the case of the ccoommmmiitt command, in
  641.           which case the _t_a_g must be a numeric one.  Specifying
  642.           the --qq option along with the --rr option is often useful,
  643.           to suppress the warning messages when the RCS file does
  644.           not contain the specified tag.
  645.  
  646.      --DD _d_a_t_e__s_p_e_c
  647.           Causes the command to use the revision that was checked
  648.           in at or before the specified _d_a_t_e__s_p_e_c argument.  The
  649.           _d_a_t_e__s_p_e_c is a single argument, free form date descrip-
  650.           tion specifying a date in the past.  This option
  651.           implies the --ff option.  See the EEXXAAMMPPLLEESS section for
  652.           useful examples of how the --DD option can be used.
  653.  
  654.  
  655.  
  656.  
  657. Sprite v1.0               20 July 1989                         10
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. CVS                  UNKNOWN MANUAL SECTION                   CVS
  665.  
  666.  
  667.  
  668. CCOONNFFLLIICCTT RREESSOOLLUUTTIIOONN
  669.      The algorithm used by cchheecckkoouutt and uuppddaattee is described in
  670.      this section.  The output generated, unless the --QQ option is
  671.      specified, consists of the following lines to describe
  672.      exactly how your private sources are being brought up-to-
  673.      date with the RCS source repository.
  674.  
  675.      UU _f_i_l_e
  676.           The specified file was copied directly out of its
  677.           respective RCS file from the source repository.  This
  678.           is done because the condition of your user file matches
  679.           one of the following:
  680.           o+    The user file did not exist in your private
  681.                sources, whether it was because you removed it, or
  682.                because someone added it to the source repository.
  683.           o+    The file did exist, but you did not change it and
  684.                a different revision was matched in the RCS file,
  685.                be it by the default ``head'' match, or via the --rr
  686.                or --DD options.
  687.  
  688.      MM _f_i_l_e
  689.           The specified file has been modified locally by you.
  690.           Use the ddiiffff command to see the actual changes that you
  691.           have made.
  692.  
  693.      AA _f_i_l_e
  694.           The specified file has been added to your private copy
  695.           of the sources, and will be added to the RCS source
  696.           repository when the file is ccoommmmiittted.  This is a rem-
  697.           inder to you that the file needs to be committed.
  698.  
  699.      RR _f_i_l_e
  700.           The specified file has been removed from your private
  701.           copy of the sources, and will be removed from the RCS
  702.           source repository when the file is ccoommmmiittted.  This is
  703.           a reminder to you that the file needs to be committed.
  704.  
  705.      CC _f_i_l_e_s
  706.           The specified file was modified locally by you, and
  707.           while doing the uuppddaattee, it was determined that a later
  708.           revision had been checked into the respective RCS file.
  709.           As a result, ccvvss performs an rrccssmmeerrggee(l), which com-
  710.           bines the changes made to the RCS file with the changes
  711.           that you have made to your version of the file.  If
  712.           there were any lines in conflict during the merge (i.e.
  713.           the other developer changed the same line that you have
  714.           changed), then the CC is displayed to show that the file
  715.           must be manually corrected.
  716.  
  717.           This merge process delimits the lines in conflict using
  718.           lines beginning with ``>>>>>>>'' and ``<<<<<<<'', so it
  719.           is easy to find the conflicts within your merged file.
  720.  
  721.  
  722.  
  723. Sprite v1.0               20 July 1989                         11
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. CVS                  UNKNOWN MANUAL SECTION                   CVS
  731.  
  732.  
  733.  
  734.           Note that your original, modified file is preserved in
  735.           a backup file within the same directory that the file
  736.           existed.  The backup file has the form
  737.           ``..##_f_i_l_e.._v_e_r_s_i_o_n'', where the _v_e_r_s_i_o_n is the RCS revi-
  738.           sion that your modified file was based upon.  Note that
  739.           some systems automatically purge files that begin with
  740.           ..## if they have not been accessed in roughly three
  741.           days.  Thus, if you intend to keep a copy of your ori-
  742.           ginal file, I strongly suggest that it be renamed.
  743.  
  744.           If the merge process proceeded without any conflicts,
  745.           an MM is displayed instead of a CC.  It is still a wise
  746.           idea to ddiiffff(1) the original version before the merge,
  747.           contained in the backup file, with the merged version
  748.           to verify that the merged changes make sense with your
  749.           changes.
  750.  
  751. MMOODDUULLEE SSUUPPPPOORRTT
  752.      The cchheecckkoouutt, ppaattcchh, and ttaagg commands all accept _m_o_d_u_l_e
  753.      names as arguments.  The module database is stored as an
  754.      nnddbbmm(3) format database within the CVSROOT.adm directory of
  755.      your CVSROOT source repository.  The remainder of this sec-
  756.      tion considers how the cchheecckkoouutt command operates on the
  757.      modules database.  The operations for the other commands
  758.      that use the database are similar, except that they do not
  759.      create any files or directories in your work space, as
  760.      cchheecckkoouutt does.
  761.  
  762.      The above commands search the module database for each
  763.      module argument.  If the module database does not exist, or
  764.      if the argument does not have a matching key in the module
  765.      database, the argument is processed as follows:
  766.  
  767.      1.   The value of the CVSROOT environment variable is
  768.           prepended to the argument to form a full path name.
  769.  
  770.      2.   If the full path name does not exist, either as a
  771.           directory or as a file with an RCS ,,vv extension, the
  772.           argument module cannot be resolved and the command con-
  773.           tinues, processing any remaining argument modules.
  774.  
  775.      3.   If the full path name refers to a directory, the direc-
  776.           tories leading up to the directory are created, start-
  777.           ing from the current working directory, and the direc-
  778.           tory is populated with the correct files, ready for
  779.           your editing satisfaction.  If available, and the --ll
  780.           option was not specified, sub-directories are created
  781.           and populated as well, until the entire directory
  782.           hierarchy of the specified module argument is recon-
  783.           structed in your work space.
  784.  
  785.      4.   If the full path name, combined with an RCS ,,vv suffix
  786.  
  787.  
  788.  
  789. Sprite v1.0               20 July 1989                         12
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. CVS                  UNKNOWN MANUAL SECTION                   CVS
  797.  
  798.  
  799.  
  800.           exists, only that file is extracted.  The directories
  801.           leading up to where the argument module resides are
  802.           created, if necessary, and the leaf directory is popu-
  803.           lated with the single source file.
  804.  
  805.      It should be clear from reading the above algorithm that the
  806.      module database is not required to extract or process whole
  807.      directory hierarchies, or even individual files.  However,
  808.      the addition of the module database allows a high degree of
  809.      flexibility to be added to the structure or naming of pieces
  810.      of software within the CVSROOT source hierarchy.  The easi-
  811.      est way to demonstrate the usefulness of the module database
  812.      is by example.  And so, one follows:
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855. Sprite v1.0               20 July 1989                         13
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. CVS                  UNKNOWN MANUAL SECTION                   CVS
  863.  
  864.  
  865.  
  866.           #
  867.           # Sample CVS Modules file
  868.           #
  869.           # Three different line formats are valid:
  870.           #    key     -a    aliases...
  871.           #    key [options] directory
  872.           #    key [options] directory files...
  873.           #
  874.           # Where "options" are composed of:
  875.           #    -i prog        Run "prog" on checkin of files
  876.           #    -o prog        Run "prog" on "checkout" of files
  877.           #    -t prog        Run "prog" on tagging of files
  878.           #
  879.  
  880.           # Convenient aliases
  881.           world          -a .
  882.  
  883.           # CVSROOT.adm support
  884.           CVSROOT   -i /usr/local/bin/mkmodules CVSROOT.adm
  885.           CVSROOT.adm    -i /usr/local/bin/mkmodules CVSROOT.adm
  886.           modules        -i /usr/local/bin/mkmodules CVSROOT.adm modules
  887.           loginfo        -i /usr/local/bin/mkmodules CVSROOT.adm loginfo
  888.  
  889.           # The "sys" entry exists only to make symbolic links after checkout
  890.           sys       -o sys/tools/make_links sys
  891.  
  892.           # Sub-directories of "bin"
  893.           awk       bin/awk
  894.           csh       bin/csh
  895.           diff      bin/diff
  896.           make      bin/make
  897.           sed       bin/sed
  898.           sh        bin/sh
  899.  
  900.           # Programs that live in "bin"
  901.           cat       bin Makefile cat.c
  902.           chgrp          bin Makefile chgrp.c
  903.           chmod          bin Makefile chmod.c
  904.           cmp       bin Makefile cmp.c
  905.           cp        bin Makefile cp.c
  906.           date      bin Makefile date.c
  907.           dd        bin Makefile dd.c
  908.  
  909.      The format of the _m_o_d_u_l_e_s file is also described in the
  910.      above example.  The --aa option in the database indicates that
  911.      the key is an alias, and that the right-hand side of the
  912.      alias is to be interpreted by the command _e_x_a_c_t_l_y as if it
  913.      had been specified as arguments on the command line for the
  914.      command.  The --oo option indicates that the specified program
  915.      is to be run on cchheecckkoouutt.  The key for the entry is passed
  916.      as the sole argument to the program.  The --ii option indi-
  917.      cates that the specified program is to be run on ccoommmmiitt.
  918.  
  919.  
  920.  
  921. Sprite v1.0               20 July 1989                         14
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. CVS                  UNKNOWN MANUAL SECTION                   CVS
  929.  
  930.  
  931.  
  932.      The full pathname of the respective source repository direc-
  933.      tory is passed as the sole argument to the program.  The --tt
  934.      option indicates that the specified program is to be run on
  935.      ttaagg.  The key for the entry is passed as the sole argument
  936.      to the program.
  937.  
  938.      As an example, the command
  939.  
  940.                eexxaammppllee%% ccvvss cchheecckkoouutt aawwkk
  941.  
  942.      will create the ``awk'' directory in your current working
  943.      directory, if necessary, and populate it with the current
  944.      revisions of the files in the ``$CVSROOT/bin/awk'' direc-
  945.      tory.  The command
  946.  
  947.                eexxaammppllee%% ccvvss cchheecckkoouutt ddaattee
  948.  
  949.      will create the ``date'' directory and populate with exactly
  950.      the two files ``Makefile'' and ``date.c'' from the
  951.      ``$CVSROOT/bin/awk'' directory.
  952.  
  953. VVEENNDDOORR BBRRAANNCCHH SSUUPPPPOORRTT
  954.      The branch support of RCS is used to provide a convenient
  955.      method of tracking the changes made to a vendor's source
  956.      distribution.  When a source distribution is received from a
  957.      vendor, the first step is to run the cchheecckkiinn(l) program to
  958.      place the vendor's files under CVS control.  cchheecckkiinn(l)
  959.      arranges that the RCS files produced from the vendor's
  960.      source distribution are initially setup to track the 1.1.1
  961.      branch of the RCS file.  When a ccoommmmiitt is done to one of
  962.      these files, making permanent some local change, the RCS
  963.      file is changed to track the normal ``trunk'' branch, con-
  964.      tinuing the local changes to the vendor's sources.
  965.  
  966.      When a new version of the vendor's source distribution is
  967.      received, cchheecckkiinn is used again to add the new files to CVS.
  968.      cchheecckkiinn again adds the files to the (now already existing)
  969.      1.1.1 branch of the RCS file.  This time, however, cchheecckkiinn
  970.      issues a warning when a new version of a locally modified
  971.      file is updated by the vendor's source distribution.  It is
  972.      your responsibility to then use the jjooiinn command of ccvvss to
  973.      merge the vendor's changes with your local changes.  See the
  974.      description of the jjooiinn command above.
  975.  
  976.      The --rr and --DD options of the cchheecckkoouutt and uuppddaattee commands
  977.      work ``as expected'' with the vendor branch support.  In
  978.      particular, the --DD option to check out based on a date in
  979.      the past follows the current default branch to find a match
  980.      for the specified date.  If a match cannot be found on the
  981.      default branch, the 1.1.1 vendor branch is searched.  This
  982.      allows checking out based on a date to work regardless of
  983.      when local changes are made to the file.
  984.  
  985.  
  986.  
  987. Sprite v1.0               20 July 1989                         15
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. CVS                  UNKNOWN MANUAL SECTION                   CVS
  995.  
  996.  
  997.  
  998. LLOOGGGGIINNGG SSUUPPPPOORRTT
  999.      When ccoommmmiittting a change to the source repository, a confi-
  1000.      gurable logging support file, _l_o_g_i_n_f_o, is consulted in the
  1001.      $CVSROOT/CVSROOT.adm directory.  An example of the file is
  1002.      as follows:
  1003.  
  1004.           # The "loginfo" file is used to control where "cvs commit"
  1005.           # log information is sent.  The first entry on a line is a
  1006.           # regular expression which is tested against the directory
  1007.           # that the change is being made to, relative to the
  1008.           # $CVSROOT.  If a match is found, then the remainder of the
  1009.           # line is a filter program that should expect log information
  1010.           # on its standard input.
  1011.           #
  1012.           # The filter program may use one and only one % modifier (ala
  1013.           # printf).  If %s is specified in the filter program, a brief
  1014.           # title is included (enclosed in single quotes) showing the
  1015.           # modified file names.
  1016.           #
  1017.           # If the repository name does not match any of the regular
  1018.           # expressions in this file, the "DEFAULT" line is used, if it
  1019.           # is specified.
  1020.           #
  1021.           DEFAULT   /usr/local/bin/nfpipe -t %s utils.updates
  1022.           ^diag          /usr/local/bin/nfpipe -t %s diag.updates
  1023.           ^local         /usr/local/bin/nfpipe -t %s local.updates
  1024.           ^perf          /usr/local/bin/nfpipe -t %s perf.updates
  1025.           ^sys      /usr/local/bin/nfpipe -t %s kernel.updates
  1026.  
  1027.      In addition, ``ALL'' can be specified as a special regular
  1028.      expression which always matches, but does not change the
  1029.      behaviour of when the ``DEFAULT'' branch is taken.  All
  1030.      matches for the regular expression are executed.  This log-
  1031.      ging feature allows for multiple groups and logging programs
  1032.      to share a single CVS source repository.
  1033.  
  1034. EEXXAAMMPPLLEESS
  1035.      Using the example _m_o_d_u_l_e_s and _l_o_g_i_n_f_o files shown above,
  1036.      this section shows some sample commands and describes their
  1037.      functions.
  1038.  
  1039.                eexxaammppllee%% ccvvss cchheecckkoouutt ccsshh
  1040.                eexxaammppllee%% ccdd ccsshh
  1041.                eexxaammppllee%% mmaakkee
  1042.  
  1043.      This command retrieves the current revision of the ``csh''
  1044.      sources and places them within the ``csh'' directory.  The
  1045.      ``make'' command within that directory will then build the
  1046.      ``csh'' executable.
  1047.  
  1048.                eexxaammppllee%% ccvvss cchheecckkoouutt --rrSSuunnOOSS ccsshh
  1049.                eexxaammppllee%% ccdd ccsshh
  1050.  
  1051.  
  1052.  
  1053. Sprite v1.0               20 July 1989                         16
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. CVS                  UNKNOWN MANUAL SECTION                   CVS
  1061.  
  1062.  
  1063.  
  1064.                eexxaammppllee%% mmaakkee
  1065.  
  1066.      These commands get the current SunOS revision of ``csh'' and
  1067.      builds the executable.
  1068.  
  1069.                eexxaammppllee%% ccvvss cchheecckkoouutt ddaattee
  1070.                eexxaammppllee%% ccdd ddaattee
  1071.                eexxaammppllee%% mmaakkee ddaattee
  1072.  
  1073.      These commands checkout the current revision of the ``date''
  1074.      command, along with the Makefile that is required to build
  1075.      the ``date'' executable.  The ``make'' command includes the
  1076.      target ``date'', since this Makefile is used to build much
  1077.      more than just ``date'' by default.
  1078.  
  1079.                eexxaammppllee%% ccvvss cchheecckkoouutt --qq ssyyss
  1080.  
  1081.      Gets a copy of the current kernel sources, including the
  1082.      entire kernel directory hierarchy.  The --qq option suppresses
  1083.      the message displayed as each directory is descended.
  1084.  
  1085.                eexxaammppllee%% ccvvss cchheecckkoouutt --pp --qq --ff --rrSSuunnOOSS ssyyss
  1086.  
  1087.      Gets an _e_x_a_c_t copy of the current revision SunOS kernel
  1088.      sources.  The --ff option forces only files that have the
  1089.      ``SunOS'' tag to be retrieved, not including files locally
  1090.      added to the kernel sources.  The --pp option prunes empty
  1091.      directories, thereby not including directories that have
  1092.      been locally added to the kernel source hierarchy.
  1093.  
  1094.                eexxaammppllee%% ccvvss cchheecckkoouutt --pp --DD ''AAuugguusstt 1100,, 11998899 1144::4400'' ssyyss
  1095.  
  1096.      The exact copy of the kernel sources as of the specified
  1097.      date and time is retrieved.  The date is a free-form
  1098.      strings, as specified in rrccss(l).
  1099.  
  1100.                eexxaammppllee%% ccvvss ddiiffff --cc
  1101.                eexxaammppllee%% ccvvss ccoommmmiitt --aa --mm ''ffiixxeedd NNUULLLL ppooiinntteerr ddeerreeffeerreennccee''
  1102.  
  1103.      The ddiiffff command displays a context diff of all the changes
  1104.      that you have made to the sources within the current direc-
  1105.      tory.  Only those files thaty you have changed are
  1106.      displayed.  The ccoommmmiitt command makes these changes permanent
  1107.      within the source repository so that others can benefit from
  1108.      your fix.
  1109.  
  1110.                eexxaammppllee%% ccvvss ddiiffff --cc --rrSSuunnOOSS ffiillee..cc
  1111.                eexxaammppllee%% ccvvss ddiiffff --cc --rr11..99 --rr11..1111 ffiillee..cc
  1112.                eexxaammppllee%% ccvvss ddiiffff --cc --rr11..2222 ffiillee..cc
  1113.  
  1114.      Examples of how the ddiiffff command can be used.  The first
  1115.      example displays the differences between the SunOS version
  1116.  
  1117.  
  1118.  
  1119. Sprite v1.0               20 July 1989                         17
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. CVS                  UNKNOWN MANUAL SECTION                   CVS
  1127.  
  1128.  
  1129.  
  1130.      of the file and your checked out version.  The second exam-
  1131.      ple shows the differences between two specific revisions of
  1132.      the RCS file.  The final example diffs the currently checked
  1133.      out file against a specific revision of the RCS file.
  1134.  
  1135.                eexxaammppllee%% ccvvss ttaagg PPrriissmmaaOOSS11__00 ccsshh
  1136.                eexxaammppllee%% ccvvss ttaagg PPrriissmmaaOOSS11__00 bbiinn
  1137.                eexxaammppllee%% ccvvss ttaagg tteesstt__kkeerrnneell ssyyss
  1138.                eexxaammppllee%% ccvvss ttaagg --dd tteesstt__kkeerrnneell ssyyss
  1139.                eexxaammppllee%% ccvvss ttaagg --qq --ff --rrSSuunnOOSS SSUUNNOOSS ..
  1140.                eexxaammppllee%% ccvvss ttaagg --DD ''JJuunnee 3300,, 11998899'' JJUUNNEE__KKEERRNNEELL ssyyss
  1141.  
  1142.  
  1143.  
  1144. FFIILLEESS
  1145.      CVS.adm
  1146.           A directory created by the cchheecckkoouutt command within each
  1147.           directory that contains checked out source files.  This
  1148.           directory holds all the ccvvss administration files for an
  1149.           individual's private copy of the sources.  In general,
  1150.           these files should not be edited by hand.  ccvvss will do
  1151.           that for you.  Be sure to _n_e_v_e_r remove this directory
  1152.           if you have source files that have been modified and
  1153.           need to be committed in the directory that the CVS.adm
  1154.           directory administrates.  The files contained in this
  1155.           directory are described below.
  1156.  
  1157.      CVS.adm/Entries
  1158.           Contains the list of files that have been checked out
  1159.           in the current directory along with the revision number
  1160.           that each checked out file is up-to-date with and a
  1161.           timestamp that is used to quickly determine if a file
  1162.           has been possibly modified or not.
  1163.  
  1164.      CVS.adm/Entries.Backup
  1165.           A backup of the previous CVS.adm/Entries file, just in
  1166.           case of catastrophe.
  1167.  
  1168.      CVS.adm/Entries.Static
  1169.           The existence of this file tells ccvvss to only use the
  1170.           files contained in the CVS.adm/Entries file when gen-
  1171.           erating the list of source files for this directory.
  1172.           This allows selected files from a directory in the
  1173.           source repository to be checked out and manipulated
  1174.           without requiring that the entire source directory be
  1175.           used.
  1176.  
  1177.      CVS.adm/Mod
  1178.           After doing an uuppddaattee command, this file reflects the
  1179.           current list of modified source files for the direc-
  1180.           tory.
  1181.  
  1182.  
  1183.  
  1184.  
  1185. Sprite v1.0               20 July 1989                         18
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. CVS                  UNKNOWN MANUAL SECTION                   CVS
  1193.  
  1194.  
  1195.  
  1196.      CVS.adm/Repository
  1197.           Holds the pathname to the respective directory in the
  1198.           source repository that these files refer to.  This is
  1199.           usually a relative pathname, with the value of the
  1200.           CVSROOT environment tacked on the front to produce a
  1201.           full pathname.  If the pathname in the
  1202.           CVS.adm/Repository file is already a full pathname, the
  1203.           CVSROOT value is not tacked on.
  1204.  
  1205.      CVS.adm/Checkin.prog
  1206.           Contains one line which specifies the program that is
  1207.           to be run when any files in the current directory are
  1208.           checked in to the source repository with the ccoommmmiitt
  1209.           command.  The particular use of this is to rebuild the
  1210.           ``modules'' database after a new revision is checked in
  1211.           - see mmkkmmoodduulleess(l).
  1212.  
  1213.      The following files or directories are created directly in
  1214.      the source repository directories as needed.
  1215.  
  1216.      CVSROOT.adm
  1217.           A directory that should exist in the top-most directory
  1218.           as defined by the CVSROOT environment variable.  This
  1219.           directory contains administrations files that define
  1220.           the global actions for the entire source repository
  1221.           beginning at CVSROOT . The files used directly by ccvvss
  1222.           in this directory are described below, though you are
  1223.           free to add others as you see fit.
  1224.  
  1225.      CVSROOT.adm/modules,v
  1226.           The RCS file which defines the _m_o_d_u_l_e_s supported within
  1227.           this source repository.  The format is as specified in
  1228.           the MMOODDUULLEE SSUUPPPPOORRTT section above for more information.
  1229.  
  1230.      CVSROOT.adm/loginfo,v
  1231.           The RCS file that contains the descriptions of which
  1232.           programs to pipe log messages into when ccoommmmiittting
  1233.           files.  See the LLOOGGGGIINNGG SSUUPPPPOORRTT section above for more
  1234.           information.
  1235.  
  1236.      Attic
  1237.           When RCS files are removed with the rreemmoovvee command, the
  1238.           actual RCS file is moved into the Attic directory where
  1239.           it will remain until someone uses the aadddd command to
  1240.           restore it as a needed source file.
  1241.  
  1242.      #cvs.lock
  1243.           A lock directory created by ccvvss when doing sensitive
  1244.           changes to the RCS source repository.
  1245.  
  1246.      #cvs.tfl._p_i_d
  1247.           A lock file created just to test the waters of the RCS
  1248.  
  1249.  
  1250.  
  1251. Sprite v1.0               20 July 1989                         19
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. CVS                  UNKNOWN MANUAL SECTION                   CVS
  1259.  
  1260.  
  1261.  
  1262.           source repository directory before committing files.
  1263.  
  1264.      #cvs.rfl._p_i_d
  1265.           A read lock created when doing the uuppddaattee command.  A
  1266.           ccoommmmiitt done by some other user will wait until all
  1267.           readers have finished using the directory before
  1268.           proceeding.
  1269.  
  1270.      #cvs.wfl._p_i_d
  1271.           A write lock created by ccoommmmiitt to cause any other
  1272.           uuppddaattees in the same source repository directory to
  1273.           block until the commit has completed.
  1274.  
  1275. EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
  1276.      CVSROOT
  1277.           Must be set for most commands.  Should contain the full
  1278.           pathname to the root of the ccvvss source repository, that
  1279.           is, where the RCS files are kept.
  1280.  
  1281.      CVSREAD
  1282.           If this is set, cchheecckkoouutt and uuppddaattee will try hard to
  1283.           make your private checked out sources read-only.  When
  1284.           this is not set, the default behaviour is to make
  1285.           read-write files.
  1286.  
  1287.      RCSBIN
  1288.           Specifies the full pathname where to find RCS programs,
  1289.           such as ccoo(l) and ccii(l).  If not set, the default is
  1290.           //uussrr//llooccaall//bbiinn.
  1291.  
  1292.      EDITOR
  1293.           Specifies the editor to use when doing a ccoommmmiitt.  If
  1294.           not set, the default editor used is //uussrr//uuccbb//vvii.
  1295.  
  1296. AAUUTTHHOORRSS
  1297.      Dick Grune
  1298.           Original author of the ccvvss shell script version posted
  1299.           to ccoommpp..ssoouurrcceess..uunniixx in the volume6 release of
  1300.           December, 1986.  Credited with much of the ccvvss conflict
  1301.           resolution algorithms.
  1302.  
  1303.      Brian Berliner
  1304.           Coder and designer of the ccvvss program itself in April,
  1305.           1989, based on the original work done by Dick.
  1306.  
  1307.      Jeff Polk
  1308.           Helped Brian with the design of the ccvvss module and ven-
  1309.           dor branch support and author of the cchheecckkiinn(l) shell
  1310.           script.
  1311.  
  1312. SSEEEE AALLSSOO
  1313.      cchheecckkiinn(l), ccii(l), ccoo(l), ddiiffff(1), ggrreepp(1), mmkkmmoodduulleess(l),
  1314.  
  1315.  
  1316.  
  1317. Sprite v1.0               20 July 1989                         20
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. CVS                  UNKNOWN MANUAL SECTION                   CVS
  1325.  
  1326.  
  1327.  
  1328.      nnddbbmm(3), ppaattcchh(l), rrccss(l), rrccssddiiffff(l), rrccssmmeerrggee(l), rrlloogg(l),
  1329.      rrmm(1), ssoorrtt(1).
  1330.  
  1331. BBUUGGSS
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380. Sprite v1.0               20 July 1989                         21
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.